﻿Imports Negocio
Public Class frmCliAdmin
    Private accion As String
    Private indexMod As Integer
    Private antiguo As Cliente
    Private Sub frmCliAdmin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 0 To miGestionClientes.Clientes.Count - 1
            cboClientes.Items.Add(miGestionClientes.Clientes(i).Nombre)
        Next
    End Sub

    Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        grpDatos.Visible = True
        accion = "Nuevo"
        cboClientes.Enabled = False
        txtUsuario.Text = ""
        txtContraseña.Text = ""
        txtEmail.Text = ""
        txtTarjeta1.Text = ""
        txtTarjeta2.Text = ""
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If accion = "Nuevo" Then
            If txtUsuario.Text = "" Then
                MessageBox.Show("Error, no has introducido nombre de usuario")
                txtUsuario.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False

                Exit Sub
            End If
            If txtEmail.Text = "" Then
                MessageBox.Show("Error, no has introducido email")
                txtEmail.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtTarjeta1.Text = "" Then
                MessageBox.Show("Error, no has introducido número de tarjeta")
                txtTarjeta1.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtTarjeta2.Text = "" Then
                MessageBox.Show("Error, no has introducido fecha de caducidad de la tarjeta")
                txtTarjeta2.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtContraseña.Text = "" Then
                MessageBox.Show("Error, no has introducido la contraseña")
                txtContraseña.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If Not txtTarjeta2.Text.Contains("/") Then
                MessageBox.Show("Caducidad de tarjeta no válida")
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            Dim cliente As New Cliente(txtUsuario.Text, txtContraseña.Text, txtEmail.Text, txtTarjeta1.Text, txtTarjeta2.Text)
            Dim mens As String = miGestionClientes.Añadir(cliente)
            If mens <> "" Then
                MessageBox.Show(mens)
                txtUsuario.Text = ""
                txtContraseña.Text = ""
                txtEmail.Text = ""
                txtTarjeta1.Text = ""
                txtTarjeta2.Text = ""
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            txtUsuario.Text = ""
            txtContraseña.Text = ""
            txtEmail.Text = ""
            txtTarjeta1.Text = ""
            txtTarjeta2.Text = ""
            cboClientes.Items.Clear()
            For i As Integer = 0 To miGestionClientes.Clientes.Count - 1
                cboClientes.Items.Add(miGestionClientes.Clientes(i).Nombre)
            Next

        End If
        If accion = "Modificar" Then
            If txtUsuario.Text = "" Then
                MessageBox.Show("Error, no has introducido nombre de usuario")
                txtUsuario.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False

                Exit Sub
            End If
            If txtEmail.Text = "" Then
                MessageBox.Show("Error, no has introducido email")
                txtEmail.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtTarjeta1.Text = "" Then
                MessageBox.Show("Error, no has introducido número de tarjeta")
                txtTarjeta1.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtTarjeta2.Text = "" Then
                MessageBox.Show("Error, no has introducido fecha de caducidad de la tarjeta")
                txtTarjeta2.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If txtContraseña.Text = "" Then
                MessageBox.Show("Error, no has introducido la contraseña")
                txtContraseña.Focus()
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            If Not txtTarjeta2.Text.Contains("/") Then
                MessageBox.Show("Caducidad de tarjeta no válida")
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
           
            Dim nuevo As New Cliente(txtUsuario.Text, txtContraseña.Text, txtEmail.Text, txtTarjeta1.Text, txtTarjeta2.Text)
            Dim mensaje As String = miGestionClientes.Modificar(antiguo, nuevo)
            If mensaje <> "" Then
                MessageBox.Show(mensaje)
                txtUsuario.Text = ""
                txtContraseña.Text = ""
                txtEmail.Text = ""
                txtTarjeta1.Text = ""
                txtTarjeta2.Text = ""
                cboClientes.Enabled = True
                grpDatos.Visible = False
                Exit Sub
            End If
            txtUsuario.Text = ""
            txtContraseña.Text = ""
            txtEmail.Text = ""
            txtTarjeta1.Text = ""
            txtTarjeta2.Text = ""
            cboClientes.Enabled = True
            cboClientes.Items.Clear()
            For i As Integer = 0 To miGestionClientes.Clientes.Count - 1
                cboClientes.Items.Add(miGestionClientes.Clientes(i).Nombre)
            Next


        End If
        cboClientes.Enabled = True
        grpDatos.Visible = False
    End Sub

    Private Sub cboClientes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboClientes.SelectedIndexChanged
        grpDatos.Visible = False


    End Sub

    Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
        grpDatos.Visible = True
        indexMod = cboClientes.SelectedIndex
        cboClientes.Enabled = False
        accion = "Modificar"
        antiguo = miGestionClientes.Clientes(indexMod)
        txtUsuario.Text = antiguo.Nombre
        txtContraseña.Text = antiguo.Password
        txtEmail.Text = antiguo.Email
        txtTarjeta1.Text = antiguo.NumTarjeta
        txtTarjeta2.Text = antiguo.CaducidadTarjeta


    End Sub

    Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
        grpDatos.Visible = False
        cboClientes.Enabled = True
        indexMod = cboClientes.SelectedIndex
        Dim result As DialogResult = MessageBox.Show("¿Deseas eliminar " & miGestionClientes.Clientes(indexMod).Nombre & " ?", "Atencion", MessageBoxButtons.YesNo)
        If result = Windows.Forms.DialogResult.Yes Then
            Dim mens As String = miGestionClientes.Eliminar(miGestionClientes.Clientes(indexMod))
            If mens <> "" Then
                MessageBox.Show(mens)
            Else
                MessageBox.Show("Se ha eliminado correctamente")
                cboClientes.Items.Clear()
                For i As Integer = 0 To miGestionClientes.Clientes.Count - 1
                    cboClientes.Items.Add(miGestionClientes.Clientes(i).Nombre)
                Next
            End If

        End If

    End Sub
End Class